package cn.janescott.inner.space.admin.config;

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

/**
 * <p>
 * implements WebMvcConfigurer:
 * 不会覆盖@EnableAutoConfiguration关于WebMvcAutoConfiguration的配置
 * (注：application.properties中的关于web的配置还是有效的)
 * </p>
 * <p>
 * EnableWebMvc注解 + implements WebMvcConfigurer:
 * 会覆盖@EnableAutoConfiguration关于WebMvcAutoConfiguration的配置
 * (注：EnableWebMvc注解
 * 实际上只是引入了DelegatingWebMvcConfiguration)
 *
 * @see org.springframework.web.servlet.config.annotation.EnableWebMvc
 *
 * </p>
 * <p>
 * extends WebMvcConfigurationSupport:
 * 会覆盖@EnableAutoConfiguration关于WebMvcAutoConfiguration的配置
 * </p>
 * <p>
 * extends DelegatingWebMvcConfiguration:
 * 会覆盖@EnableAutoConfiguration关于WebMvcAutoConfiguration的配置
 * </p>
 * <p>
 * 这里使用第一种是因为大部分配置采用springboot默认，
 * 只需要在自己需要的配置中重写方法即可
 * </p>
 * @date 2018/7/24
 * @author scott
 */

@Configuration
public class WebConfiguration implements WebMvcConfigurer {
    /**
     * 纯页面控制器
     * 没有具体业务的视图
     */
    @Override
    public void addViewControllers(ViewControllerRegistry registry) {
        registry.addViewController("/").setViewName("/Home");
    }

    /**
     * 资源路径
     */
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        //将/resources/xx请求直接解析到classpath下的/static/xx
        registry.addResourceHandler("/resources/**").addResourceLocations("classpath:/static/");
    }


}
